package utils

import (
	"strconv"

	"github.com/beego/beego/v2/core/logs"
)

// Response 通用响应结构
type Response struct {
	Code    int         `json:"code"`
	Message string      `json:"message"`
	Data    interface{} `json:"data,omitempty"`
}

// SuccessMsg 返回成功消息
func SuccessMsg(message string) *Response {
	return &Response{
		Code:    0,
		Message: message,
	}
}

// SuccessData 返回成功数据
func SuccessData(data interface{}) *Response {
	return &Response{
		Code:    0,
		Message: "操作成功",
		Data:    data,
	}
}

// ErrorMsg 返回错误消息
func ErrorMsg(message string) *Response {
	logs.Error("错误信息: %s", message)
	return &Response{
		Code:    1,
		Message: message,
	}
}

// ErrorWithCode 返回带错误码的错误消息
func ErrorWithCode(code int, message string) *Response {
	logs.Error("错误信息: %s, 错误码: %d", message, code)
	return &Response{
		Code:    code,
		Message: message,
	}
}

// ResponseSuccess 成功响应（兼容旧版本）
func ResponseSuccess(message string, data interface{}) map[string]interface{} {
	return map[string]interface{}{
		"success": true,
		"message": message,
		"data":    data,
	}
}

// ResponseFail 失败响应（兼容旧版本）
func ResponseFail(message string) map[string]interface{} {
	return map[string]interface{}{
		"success": false,
		"message": message,
	}
}

// ParseInt64 将字符串解析为int64
func ParseInt64(s string) (int64, error) {
	return strconv.ParseInt(s, 10, 64)
}
